An optical flow is the pattern of apparent motion of objects, surfaces, and edges in a visual scene caused by the relative motion between an observer (e.g., an eye of a camera) and the scene. Optical flow estimation has been an important problem in computer vision research such as motion detection, object segmentation, and disparity measurement in a two-dimensional (2D) or three-dimensional (3D) environment. Generally, pixel-level optical flow estimation is to calculate the motion between two subsequent images which are taken at times t and t+Δt every pixel position, where Δt is the time difference between the two images. Analysis of subsequent images searching for local displacements of pixels in the images allows quantitative measurement of the optical flow of the pixels. Sub-pixel level optical flow estimation method is to find sub-pixel displacement of pixels in the images.
One conventional sub-pixel optical flow estimation method is to compute pixel-level optical flow of an input image using a window-based matching algorithm. A matching score for each pixel is computed only at pixel-level. To find the sub-pixel optical flow, one existing method is to compute the matching score at an interpolated image of the input image. The problem with this method is computationally expensive due to the complex image interpolation.
Another conventional way to compute sub-pixel optical flow is to fit a parametric function, such as a spline or quadratic function, to pixel-level matching scores of an input image, and to find the maximum value of the function. The maximum value of the parametric function allows the method to compute the sub-pixel optical flow. The problem with this method is computationally expensive due to the complex computation using the parametric function.